package com.wx.gof.principle.Interfacesegregation;

/**
 * @ClassName Application
 * @Author wx
 * @Description 应用程序-接口隔离原则(接口合理细化分类-细粒度可以自由组合，粗粒度不可拆分)
 * @Date 2018-12-02-17:18
 */
public class Application {
    public static void main(String[] agrs) {
        /**
         * Animal接口包括了 吃 飞  游泳等行为，但是狗不需要飞,鸟也不需要游泳，这里就打破了接口隔离原则
         */
        Bird bird = new Bird();
        Dog dog = new Dog();
        bird.swim();
        dog.fly();

        /**
         * 细化接口，细粒度进行自由组合
         */
        BirdV2 birdV2 = new BirdV2();
        DogV2 dogV2 = new DogV2();
        birdV2.eat();
        birdV2.fly();
        dogV2.eat();
        dogV2.swim();
    }
}
